Clair 是 Coreos 公司推出的一款安全的镜像静态分析扫描工具,类似的功能在 Docker 官方的商业 dockerhub 上也有不同的实现。
Clair 是一款开源的软件,具体可以参考 https://github.com/coreos/clair
我们简单的来介绍一下如何使用 docker 容器来快速的体验相应的功能,具体实践步骤如下:
- 安装 PostgreSQL 9.4+ 数据库, 这里我们使用 sameersbn/postgresql:9.5-3 镜像来安装
这里为了方便网络的配置,使用 host net 方案,
1 | docker run --net host --name postgresql -itd --restart always --env 'PG_PASSWORD=yourpassword' sameersbn/postgresql:9.5-3 |
- 创建 clair 的配置
1 | curl -L https://raw.githubusercontent.com/coreos/clair/v1.2.6/config.example.yaml -o $HOME/clair_config/config.yaml |
修改其中的 postgresql 配置, 类似如下:
1 | source: postgresql://postgres:yourpassword@ip:5432?sslmode=disable |
- 运行 clair
1 | docker run -d -p 6060-6061:6060-6061 -v /root/clair_config/:/config -v /tmp:/tmp clair:dev -config=/config/config.yaml |
这样clair 就运行了,clair 刚开始运行需要一段较长的时间来更新安全数据数据库,所以确保外网网络连接正常
运行 clair 扫描工具
1 | ./analyze-local-images a1553cdf672f |
这里的 analyze 通过如下安装
1 | go get -u github.com/coreos/clair/contrib/analyze-local-images |
运行结果类似如下:
1 | CVE-2016-0494 (High) |